package com.defangit.production.orm;

import laogen.io.ConfigNodes;
import laogen.util.UniqueNoConfigNodes;

import java.io.File;
import java.io.FileReader;
import java.util.Collections;
import java.util.Properties;

/**
 * 全局可读（写）配置文件//todo 开通可写
 * Created by Administrator on 2017/3/23.
 */
public class GlobalConfig extends Properties {
    public static ConfigNodes.ConfigNode SHOP_NO_TYPE_IS_VALID=null;
    public static ConfigNodes.ConfigNode MOBILE_UNIQUE=null;
    public static ConfigNodes.ConfigNode DB_MAX_CONNECTION=null;
    public static ConfigNodes.ConfigNode SITE_URL=null;
    public static ConfigNodes.ConfigNode SITE_NAME=null;
    public static ConfigNodes.ConfigNode SITE_IMAGE_URL=null;

    public static void initConfig() {
        ConfigNodes siteNodes=new ConfigNodes()
                .setKey("com.defangit.mall.sites")
                .setName("网站参数设置")
                .setConfigurable(true);
        SITE_URL=siteNodes.new ConfigNode()
                .setKey("home.url")
                .setName("网站地址")
                .setDescription("网站地址")
                .setType(ConfigNodes.ConfigNodeType.STRING)
                .setConfigurable(true)
                .setValue("http://www.defangit.com");
        SITE_NAME=siteNodes.new ConfigNode()
                .setKey("home.name")
                .setName("网站名称")
                .setDescription("网站名称")
                .setType(ConfigNodes.ConfigNodeType.STRING)
                .setConfigurable(true)
                .setValue("德方科技");
        SITE_IMAGE_URL=siteNodes.new ConfigNode()
                .setKey("home.image.url")
                .setName("网站图片地址")
                .setDescription("网站图片地址")
                .setType(ConfigNodes.ConfigNodeType.STRING)
                .setConfigurable(true)
                .setValue("http://www.defangit.com/image");
        siteNodes.addNode(SITE_IMAGE_URL);
        siteNodes.addNode(SITE_NAME);
        siteNodes.addNode(SITE_URL);
        ConfigNodes.registerConfigNodes(siteNodes);



        ConfigNodes nodes=new ConfigNodes()
                .setKey("com.defangit.mall.shops")
                .setConfigurable(true)
                .setName("商城用户功能参数配置项");
        SHOP_NO_TYPE_IS_VALID=nodes.new ConfigNode()
                .setKey("shop.is.valid.without.type")
                .setConfigurable(true)
                .setDescription("店铺是否允许不选定店铺类型")
                .setName("店铺是否允许不选定店铺类型")
                .setType(ConfigNodes.ConfigNodeType.BOOLEAN)
                .setValue(true);
        MOBILE_UNIQUE = nodes.new ConfigNode()
                .setKey("mobile")
                .setConfigurable(true)
                .setDescription("是否允许同一手机号重复注册")
                .setName("手机号限制")
                .setType(ConfigNodes.ConfigNodeType.BOOLEAN)
                .setValue(true);
        nodes.addNode(SHOP_NO_TYPE_IS_VALID);
        nodes.addNode(MOBILE_UNIQUE);
        ConfigNodes.registerConfigNodes(nodes);

        ConfigNodes.registerConfigNodes(new UniqueNoConfigNodes("production.bill","生产订单")
                .setPrefix("PB")
                .setSeedPattern("100")
                .setSizePerLoop(100)
                .setTimePattern("yyyyMMdd"));
                //.setIgnoreRegexList(Collections.emptyList()));

        ConfigNodes.registerConfigNodes(new UniqueNoConfigNodes("material.bill","领料单")
                .setPrefix("MB")
                .setSeedPattern("100")
                .setSizePerLoop(50)
                .setTimePattern("yyyyMMdd")
        );

        ConfigNodes.registerConfigNodes(new UniqueNoConfigNodes("production.process","工序订单")
                .setPrefix("PP")
                .setSeedPattern("100")
                .setSizePerLoop(1000)
                .setTimePattern("yyyyMMdd")
        );


        ConfigNodes dbNodes=new ConfigNodes()
                .setKey("com.defangit.mall.system.db")
                .setConfigurable(true)
                .setName("程序运行环境设置项");
        DB_MAX_CONNECTION=nodes.new ConfigNode()
                .setKey("db.max.connections")
                .setConfigurable(false)
                .setDescription("数据库最大连接数")
                .setName("数据库最大连接数，根据服务器配置，运载负荷进行合理设置")
                .setType(ConfigNodes.ConfigNodeType.STRING)
                .setValue("80");
        dbNodes.addNode(DB_MAX_CONNECTION);
        ConfigNodes.registerConfigNodes(dbNodes);
    }
}
